home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 April: Mac OS SDK / Dev.CD Apr 00 SDK1.toast / Development Kits / Mac OS / Appearance SDK 1.0.4 / Appearance Sample Code / Headers / PInterfaces / Menus.p < prev   
Encoding:
Text File  |  1999-07-16  |  20.7 KB  |  581 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Menus.p
  3.  
  4.      Contains:    Menu Manager Interfaces.
  5.  
  6.      Version:    Technology:    Appearance 1.0.2
  7.                  Release:    To be used with Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1985-1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Menus;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __MENUS__}
  28. {$SETC __MENUS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC MenusIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __APPLEEVENTS__}
  35. {$I AppleEvents.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __CONDITIONALMACROS__}
  38. {$I ConditionalMacros.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __EVENTS__}
  41. {$I Events.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __PROCESSES__}
  44. {$I Processes.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __TEXTCOMMON__}
  47. {$I TextCommon.p}
  48. {$ENDC}
  49. {$IFC UNDEFINED __TYPES__}
  50. {$I Types.p}
  51. {$ENDC}
  52. {$IFC UNDEFINED __QUICKDRAW__}
  53. {$I Quickdraw.p}
  54. {$ENDC}
  55.  
  56.  
  57. {$PUSH}
  58. {$ALIGN MAC68K}
  59. {$LibExport+}
  60.  
  61. {
  62.   —————————————————————————————————————————————————————————————————————————————————————————————————————————
  63.       • Menu Types (valid only with Appearance 1.0 and later)
  64.   —————————————————————————————————————————————————————————————————————————————————————————————————————————
  65. }
  66.  
  67. CONST
  68.     kMenuStdMenuProc            = 63;
  69.     kMenuStdMenuBarProc            = 63;
  70.  
  71.     kMenuNoModifiers            = 0;                            {  Mask for no modifiers }
  72.     kMenuShiftModifier            = $01;                            {  Mask for shift key modifier }
  73.     kMenuOptionModifier            = $02;                            {  Mask for option key modifier }
  74.     kMenuControlModifier        = $04;                            {  Mask for control key modifier }
  75.     kMenuNoCommandModifier        = $08;                            {  Mask for no command key modifier }
  76.  
  77.     kMenuNoIcon                    = 0;                            {  No icon }
  78.     kMenuIconType                = 1;                            {  Type for ICON }
  79.     kMenuShrinkIconType            = 2;                            {  Type for ICON plotted 16 x 16 }
  80.     kMenuSmallIconType            = 3;                            {  Type for SICN }
  81.     kMenuColorIconType            = 4;                            {  Type for cicn }
  82.     kMenuIconSuiteType            = 5;                            {  Type for Icon Suite }
  83.     kMenuIconRefType            = 6;                            {  Type for Icon Ref }
  84.  
  85. {  —— end of Appearance 1.0 and later only }
  86.  
  87.     noMark                        = 0;                            { mark symbol for MarkItem }
  88.  
  89.                                                                 {  menu defProc messages  }
  90.     mDrawMsg                    = 0;
  91.     mChooseMsg                    = 1;
  92.     mSizeMsg                    = 2;
  93.     mDrawItemMsg                = 4;
  94.     mCalcItemMsg                = 5;
  95.  
  96.     textMenuProc                = 0;
  97.     hMenuCmd                    = 27;                            { itemCmd == 0x001B ==> hierarchical menu }
  98.     hierMenu                    = -1;                            { a hierarchical menu - for InsertMenu call }
  99.     mPopUpMsg                    = 3;                            { menu defProc messages - place yourself }
  100.     mctAllItems                    = -98;                            { search for all Items for the given ID }
  101.     mctLastIDIndic                = -99;                            { last color table entry has this in ID field }
  102.  
  103.  
  104.  
  105. TYPE
  106.     MenuInfoPtr = ^MenuInfo;
  107.     MenuInfo = RECORD
  108.         menuID:                    INTEGER;
  109.         menuWidth:                INTEGER;
  110.         menuHeight:                INTEGER;
  111.         menuProc:                Handle;
  112.         enableFlags:            LONGINT;
  113.         menuData:                Str255;
  114.     END;
  115.  
  116.     MenuPtr                                = ^MenuInfo;
  117.     MenuHandle                            = ^MenuPtr;
  118. {  MenuRef is obsolete.  Use MenuHandle.  }
  119.     MenuRef                                = MenuHandle;
  120.     MCEntryPtr = ^MCEntry;
  121.     MCEntry = RECORD
  122.         mctID:                    INTEGER;                                { menu ID.  ID = 0 is the menu bar }
  123.         mctItem:                INTEGER;                                { menu Item. Item = 0 is a title }
  124.         mctRGB1:                RGBColor;                                { usage depends on ID and Item }
  125.         mctRGB2:                RGBColor;                                { usage depends on ID and Item }
  126.         mctRGB3:                RGBColor;                                { usage depends on ID and Item }
  127.         mctRGB4:                RGBColor;                                { usage depends on ID and Item }
  128.         mctReserved:            INTEGER;                                { reserved for internal use }
  129.     END;
  130.  
  131.     MCTable                                = ARRAY [0..0] OF MCEntry;
  132.     MCTablePtr                            = ^MCTable;
  133.     MCTableHandle                        = ^MCTablePtr;
  134.     MenuCRsrcPtr = ^MenuCRsrc;
  135.     MenuCRsrc = RECORD
  136.         numEntries:                INTEGER;                                { number of entries }
  137.         mcEntryRecs:            MCTable;                                { ARRAY [1..numEntries] of MCEntry }
  138.     END;
  139.  
  140.     MenuCRsrcHandle                        = ^MenuCRsrcPtr;
  141.  
  142.  
  143.     MenuDefProcPtr = ProcPtr;  { PROCEDURE MenuDef(message: INTEGER; theMenu: MenuHandle; VAR menuRect: Rect; hitPt: Point; VAR whichItem: INTEGER); }
  144.  
  145.     MenuBarDefProcPtr = ProcPtr;  { FUNCTION MenuBarDef(selector: INTEGER; message: INTEGER; parameter1: INTEGER; parameter2: LONGINT): LONGINT; }
  146.  
  147.     MenuHookProcPtr = ProcPtr;  { PROCEDURE MenuHook; }
  148.  
  149.     MBarHookProcPtr = Register68kProcPtr;  { FUNCTION MBarHook(VAR menuRect: Rect): INTEGER; }
  150.  
  151.     MenuDefUPP = UniversalProcPtr;
  152.     MenuBarDefUPP = UniversalProcPtr;
  153.     MenuHookUPP = UniversalProcPtr;
  154.     MBarHookUPP = UniversalProcPtr;
  155.  
  156. CONST
  157.     uppMenuDefProcInfo = $0000FF80;
  158.     uppMenuBarDefProcInfo = $00003AB0;
  159.     uppMenuHookProcInfo = $00000000;
  160.     uppMBarHookProcInfo = $000000CF;
  161.  
  162. FUNCTION NewMenuDefProc(userRoutine: MenuDefProcPtr): MenuDefUPP;
  163.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  164.     INLINE $2E9F;
  165.     {$ENDC}
  166.  
  167. FUNCTION NewMenuBarDefProc(userRoutine: MenuBarDefProcPtr): MenuBarDefUPP;
  168.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  169.     INLINE $2E9F;
  170.     {$ENDC}
  171.  
  172. FUNCTION NewMenuHookProc(userRoutine: MenuHookProcPtr): MenuHookUPP;
  173.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  174.     INLINE $2E9F;
  175.     {$ENDC}
  176.  
  177. FUNCTION NewMBarHookProc(userRoutine: MBarHookProcPtr): MBarHookUPP;
  178.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  179.     INLINE $2E9F;
  180.     {$ENDC}
  181.  
  182. PROCEDURE CallMenuDefProc(message: INTEGER; theMenu: MenuHandle; VAR menuRect: Rect; hitPt: Point; VAR whichItem: INTEGER; userRoutine: MenuDefUPP);
  183.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  184.     INLINE $205F, $4E90;
  185.     {$ENDC}
  186.  
  187. FUNCTION CallMenuBarDefProc(selector: INTEGER; message: INTEGER; parameter1: INTEGER; parameter2: LONGINT; userRoutine: MenuBarDefUPP): LONGINT;
  188.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  189.     INLINE $205F, $4E90;
  190.     {$ENDC}
  191.  
  192. PROCEDURE CallMenuHookProc(userRoutine: MenuHookUPP);
  193.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  194.     INLINE $205F, $4E90;
  195.     {$ENDC}
  196.  
  197. FUNCTION CallMBarHookProc(VAR menuRect: Rect; userRoutine: MBarHookUPP): INTEGER;
  198.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  199.     {To be implemented:  Glue to move parameters into registers.}
  200.     {$ENDC}
  201.  
  202. FUNCTION GetMBarHeight: INTEGER;
  203.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  204.     INLINE $3EB8, $0BAA;
  205.     {$ENDC}
  206. PROCEDURE InitMenus;
  207.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  208.     INLINE $A930;
  209.     {$ENDC}
  210. FUNCTION NewMenu(menuID: INTEGER; menuTitle: ConstStr255Param): MenuHandle;
  211.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  212.     INLINE $A931;
  213.     {$ENDC}
  214. FUNCTION GetMenu(resourceID: INTEGER): MenuHandle;
  215.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  216.     INLINE $A9BF;
  217.     {$ENDC}
  218. PROCEDURE DisposeMenu(theMenu: MenuHandle);
  219.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  220.     INLINE $A932;
  221.     {$ENDC}
  222. PROCEDURE AppendMenu(menu: MenuHandle; data: ConstStr255Param);
  223.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  224.     INLINE $A933;
  225.     {$ENDC}
  226. PROCEDURE InsertResMenu(theMenu: MenuHandle; theType: ResType; afterItem: INTEGER);
  227.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  228.     INLINE $A951;
  229.     {$ENDC}
  230. PROCEDURE InsertMenu(theMenu: MenuHandle; beforeID: INTEGER);
  231.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  232.     INLINE $A935;
  233.     {$ENDC}
  234. PROCEDURE DeleteMenu(menuID: INTEGER);
  235.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  236.     INLINE $A936;
  237.     {$ENDC}
  238. PROCEDURE AppendResMenu(theMenu: MenuHandle; theType: ResType);
  239.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  240.     INLINE $A94D;
  241.     {$ENDC}
  242. PROCEDURE InsertMenuItem(theMenu: MenuHandle; itemString: ConstStr255Param; afterItem: INTEGER);
  243.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  244.     INLINE $A826;
  245.     {$ENDC}
  246. PROCEDURE DeleteMenuItem(theMenu: MenuHandle; item: INTEGER);
  247.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  248.     INLINE $A952;
  249.     {$ENDC}
  250. FUNCTION MenuKey(ch: CharParameter): LONGINT;
  251.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  252.     INLINE $A93E;
  253.     {$ENDC}
  254. PROCEDURE HiliteMenu(menuID: INTEGER);
  255.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  256.     INLINE $A938;
  257.     {$ENDC}
  258. PROCEDURE SetMenuItemText(theMenu: MenuHandle; item: INTEGER; itemString: ConstStr255Param);
  259.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  260.     INLINE $A947;
  261.     {$ENDC}
  262. PROCEDURE GetMenuItemText(theMenu: MenuHandle; item: INTEGER; VAR itemString: Str255);
  263.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  264.     INLINE $A946;
  265.     {$ENDC}
  266. PROCEDURE SetItemMark(theMenu: MenuHandle; item: INTEGER; markChar: CharParameter);
  267.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  268.     INLINE $A944;
  269.     {$ENDC}
  270. PROCEDURE GetItemMark(theMenu: MenuHandle; item: INTEGER; VAR markChar: CharParameter);
  271.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  272.     INLINE $A943;
  273.     {$ENDC}
  274. PROCEDURE SetItemCmd(theMenu: MenuHandle; item: INTEGER; cmdChar: CharParameter);
  275.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  276.     INLINE $A84F;
  277.     {$ENDC}
  278. PROCEDURE GetItemCmd(theMenu: MenuHandle; item: INTEGER; VAR cmdChar: CharParameter);
  279.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  280.     INLINE $A84E;
  281.     {$ENDC}
  282. PROCEDURE SetItemIcon(theMenu: MenuHandle; item: INTEGER; iconIndex: INTEGER);
  283.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  284.     INLINE $A940;
  285.     {$ENDC}
  286. PROCEDURE GetItemIcon(theMenu: MenuHandle; item: INTEGER; VAR iconIndex: Byte);
  287.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  288.     INLINE $A93F;
  289.     {$ENDC}
  290. PROCEDURE SetItemStyle(theMenu: MenuHandle; item: INTEGER; chStyle: StyleParameter);
  291.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  292.     INLINE $A942;
  293.     {$ENDC}
  294. PROCEDURE GetItemStyle(theMenu: MenuHandle; item: INTEGER; VAR chStyle: Style);
  295. FUNCTION GetMenuHandle(menuID: INTEGER): MenuHandle;
  296.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  297.     INLINE $A949;
  298.     {$ENDC}
  299. PROCEDURE CalcMenuSize(theMenu: MenuHandle);
  300.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  301.     INLINE $A948;
  302.     {$ENDC}
  303. PROCEDURE DisableItem(theMenu: MenuHandle; item: INTEGER);
  304.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  305.     INLINE $A93A;
  306.     {$ENDC}
  307. PROCEDURE EnableItem(theMenu: MenuHandle; item: INTEGER);
  308.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  309.     INLINE $A939;
  310.     {$ENDC}
  311. PROCEDURE FlashMenuBar(menuID: INTEGER);
  312.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  313.     INLINE $A94C;
  314.     {$ENDC}
  315. FUNCTION PopUpMenuSelect(menu: MenuHandle; top: INTEGER; left: INTEGER; popUpItem: INTEGER): LONGINT;
  316.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  317.     INLINE $A80B;
  318.     {$ENDC}
  319. FUNCTION MenuChoice: LONGINT;
  320.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  321.     INLINE $AA66;
  322.     {$ENDC}
  323. PROCEDURE DeleteMCEntries(menuID: INTEGER; menuItem: INTEGER);
  324.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  325.     INLINE $AA60;
  326.     {$ENDC}
  327. FUNCTION GetMCInfo: MCTableHandle;
  328.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  329.     INLINE $AA61;
  330.     {$ENDC}
  331. PROCEDURE SetMCInfo(menuCTbl: MCTableHandle);
  332.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  333.     INLINE $AA62;
  334.     {$ENDC}
  335. PROCEDURE DisposeMCInfo(menuCTbl: MCTableHandle);
  336.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  337.     INLINE $AA63;
  338.     {$ENDC}
  339. FUNCTION GetMCEntry(menuID: INTEGER; menuItem: INTEGER): MCEntryPtr;
  340.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  341.     INLINE $AA64;
  342.     {$ENDC}
  343. PROCEDURE SetMCEntries(numEntries: INTEGER; menuCEntries: MCTablePtr);
  344.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  345.     INLINE $AA65;
  346.     {$ENDC}
  347. PROCEDURE DrawMenuBar;
  348.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  349.     INLINE $A937;
  350.     {$ENDC}
  351. PROCEDURE InvalMenuBar;
  352.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  353.     INLINE $A81D;
  354.     {$ENDC}
  355. PROCEDURE InitProcMenu(resID: INTEGER);
  356.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  357.     INLINE $A808;
  358.     {$ENDC}
  359. FUNCTION GetMenuBar: Handle;
  360.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  361.     INLINE $A93B;
  362.     {$ENDC}
  363. PROCEDURE SetMenuBar(menuList: Handle);
  364.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  365.     INLINE $A93C;
  366.     {$ENDC}
  367. FUNCTION SystemEdit(editCmd: INTEGER): BOOLEAN;
  368.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  369.     INLINE $A9C2;
  370.     {$ENDC}
  371. PROCEDURE SystemMenu(menuResult: LONGINT);
  372.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  373.     INLINE $A9B5;
  374.     {$ENDC}
  375. FUNCTION GetNewMBar(menuBarID: INTEGER): Handle;
  376.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  377.     INLINE $A9C0;
  378.     {$ENDC}
  379. PROCEDURE ClearMenuBar;
  380.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  381.     INLINE $A934;
  382.     {$ENDC}
  383. PROCEDURE CheckItem(theMenu: MenuHandle; item: INTEGER; checked: BOOLEAN);
  384.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  385.     INLINE $A945;
  386.     {$ENDC}
  387. FUNCTION CountMItems(theMenu: MenuHandle): INTEGER;
  388.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  389.     INLINE $A950;
  390.     {$ENDC}
  391. PROCEDURE SetMenuFlash(count: INTEGER);
  392.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  393.     INLINE $A94A;
  394.     {$ENDC}
  395. FUNCTION MenuSelect(startPt: Point): LONGINT;
  396.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  397.     INLINE $A93D;
  398.     {$ENDC}
  399. PROCEDURE InsertFontResMenu(theMenu: MenuHandle; afterItem: INTEGER; scriptFilter: INTEGER);
  400.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  401.     INLINE $303C, $0400, $A825;
  402.     {$ENDC}
  403. PROCEDURE InsertIntlResMenu(theMenu: MenuHandle; theType: ResType; afterItem: INTEGER; scriptFilter: INTEGER);
  404.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  405.     INLINE $303C, $0601, $A825;
  406.     {$ENDC}
  407.  
  408. {
  409.   ——————————————————————————————————————————————————————————————————————————————————
  410.       • Appearance 1.0 and later Menu Manager routines
  411.   ——————————————————————————————————————————————————————————————————————————————————
  412. }
  413.  
  414. FUNCTION MenuEvent({CONST}VAR inEvent: EventRecord): UInt32;
  415.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  416.     INLINE $303C, $020C, $A825;
  417.     {$ENDC}
  418. FUNCTION SetMenuItemCommandID(inMenu: MenuHandle; inItem: SInt16; inCommandID: UInt32): OSErr;
  419.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  420.     INLINE $303C, $0502, $A825;
  421.     {$ENDC}
  422. FUNCTION GetMenuItemCommandID(inMenu: MenuHandle; inItem: SInt16; VAR outCommandID: UInt32): OSErr;
  423.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  424.     INLINE $303C, $0503, $A825;
  425.     {$ENDC}
  426. FUNCTION SetMenuItemModifiers(inMenu: MenuHandle; inItem: SInt16; inModifiers: ByteParameter): OSErr;
  427.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  428.     INLINE $303C, $0404, $A825;
  429.     {$ENDC}
  430. FUNCTION GetMenuItemModifiers(inMenu: MenuHandle; inItem: SInt16; VAR outModifiers: UInt8): OSErr;
  431.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  432.     INLINE $303C, $0505, $A825;
  433.     {$ENDC}
  434. FUNCTION SetMenuItemIconHandle(inMenu: MenuHandle; inItem: SInt16; inIconType: ByteParameter; inIconHandle: Handle): OSErr;
  435.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  436.     INLINE $303C, $0606, $A825;
  437.     {$ENDC}
  438. FUNCTION GetMenuItemIconHandle(inMenu: MenuHandle; inItem: SInt16; VAR outIconType: UInt8; VAR outIconHandle: Handle): OSErr;
  439.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  440.     INLINE $303C, $0707, $A825;
  441.     {$ENDC}
  442. FUNCTION SetMenuItemTextEncoding(inMenu: MenuHandle; inItem: SInt16; inScriptID: TextEncoding): OSErr;
  443.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  444.     INLINE $303C, $0408, $A825;
  445.     {$ENDC}
  446. FUNCTION GetMenuItemTextEncoding(inMenu: MenuHandle; inItem: SInt16; VAR outScriptID: TextEncoding): OSErr;
  447.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  448.     INLINE $303C, $0509, $A825;
  449.     {$ENDC}
  450. FUNCTION SetMenuItemHierarchicalID(inMenu: MenuHandle; inItem: SInt16; inHierID: SInt16): OSErr;
  451.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  452.     INLINE $303C, $040D, $A825;
  453.     {$ENDC}
  454. FUNCTION GetMenuItemHierarchicalID(inMenu: MenuHandle; inItem: SInt16; VAR outHierID: SInt16): OSErr;
  455.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  456.     INLINE $303C, $050E, $A825;
  457.     {$ENDC}
  458. FUNCTION SetMenuItemFontID(inMenu: MenuHandle; inItem: SInt16; inFontID: SInt16): OSErr;
  459.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  460.     INLINE $303C, $040F, $A825;
  461.     {$ENDC}
  462. FUNCTION GetMenuItemFontID(inMenu: MenuHandle; inItem: SInt16; VAR outFontID: SInt16): OSErr;
  463.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  464.     INLINE $303C, $0510, $A825;
  465.     {$ENDC}
  466. FUNCTION SetMenuItemRefCon(inMenu: MenuHandle; inItem: SInt16; inRefCon: UInt32): OSErr;
  467.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  468.     INLINE $303C, $050A, $A825;
  469.     {$ENDC}
  470. FUNCTION GetMenuItemRefCon(inMenu: MenuHandle; inItem: SInt16; VAR outRefCon: UInt32): OSErr;
  471.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  472.     INLINE $303C, $050B, $A825;
  473.     {$ENDC}
  474. FUNCTION SetMenuItemRefCon2(inMenu: MenuHandle; inItem: SInt16; inRefCon2: UInt32): OSErr;
  475.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  476.     INLINE $303C, $0511, $A825;
  477.     {$ENDC}
  478. FUNCTION GetMenuItemRefCon2(inMenu: MenuHandle; inItem: SInt16; VAR outRefCon2: UInt32): OSErr;
  479.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  480.     INLINE $303C, $0512, $A825;
  481.     {$ENDC}
  482. FUNCTION SetMenuItemKeyGlyph(inMenu: MenuHandle; inItem: SInt16; inGlyph: SInt16): OSErr;
  483.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  484.     INLINE $303C, $0513, $A825;
  485.     {$ENDC}
  486. FUNCTION GetMenuItemKeyGlyph(inMenu: MenuHandle; inItem: SInt16; VAR outGlyph: SInt16): OSErr;
  487.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  488.     INLINE $303C, $0514, $A825;
  489.     {$ENDC}
  490. {
  491.   ——————————————————————————————————————————————————————————————————————————————————
  492.       • Contextual Menu routines and constants
  493.       available with Conxtextual Menu extension 1.0 and later
  494.   ——————————————————————————————————————————————————————————————————————————————————
  495. }
  496. { Gestalt Selector for classic 68K apps only. }
  497. { CFM apps should weak link and check the symbols. }
  498.  
  499. CONST
  500.     gestaltContextualMenuAttr    = 'cmnu';
  501.     gestaltContextualMenuUnusedBit = 0;
  502.     gestaltContextualMenuTrapAvailable = 1;
  503.  
  504. { Values indicating what kind of help the application supports }
  505.     kCMHelpItemNoHelp            = 0;
  506.     kCMHelpItemAppleGuide        = 1;
  507.     kCMHelpItemOtherHelp        = 2;
  508.  
  509. { Values indicating what was chosen from the menu }
  510.     kCMNothingSelected            = 0;
  511.     kCMMenuItemSelected            = 1;
  512.     kCMShowHelpSelected            = 3;
  513.  
  514. FUNCTION InitContextualMenus: OSStatus;
  515.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  516.     INLINE $7001, $AA72;
  517.     {$ENDC}
  518. FUNCTION IsShowContextualMenuClick({CONST}VAR inEvent: EventRecord): BOOLEAN;
  519.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  520.     INLINE $7002, $AA72;
  521.     {$ENDC}
  522. FUNCTION ContextualMenuSelect(inMenu: MenuHandle; inGlobalLocation: Point; inReserved: BOOLEAN; inHelpType: UInt32; inHelpItemString: ConstStr255Param; {CONST}VAR inSelection: AEDesc; VAR outUserSelectionType: UInt32; VAR outMenuID: SInt16; VAR outMenuItem: UInt16): OSStatus;
  523.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  524.     INLINE $7003, $AA72;
  525.     {$ENDC}
  526. FUNCTION ProcessIsContextualMenuClient(VAR inPSN: ProcessSerialNumber): BOOLEAN;
  527.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  528.     INLINE $7004, $AA72;
  529.     {$ENDC}
  530.  
  531.  
  532.  
  533. {$IFC OLDROUTINENAMES }
  534. PROCEDURE AddResMenu(theMenu: MenuHandle; theType: ResType);
  535.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  536.     INLINE $A94D;
  537.     {$ENDC}
  538. PROCEDURE InsMenuItem(theMenu: MenuHandle; itemString: Str255; afterItem: INTEGER);
  539.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  540.     INLINE $A826;
  541.     {$ENDC}
  542. PROCEDURE DelMenuItem(theMenu: MenuHandle; item: INTEGER);
  543.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  544.     INLINE $A952;
  545.     {$ENDC}
  546. PROCEDURE SetItem(theMenu: MenuHandle; item: INTEGER; itemString: Str255);
  547.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  548.     INLINE $A947;
  549.     {$ENDC}
  550. PROCEDURE GetItem(theMenu: MenuHandle; item: INTEGER; VAR itemString: Str255);
  551.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  552.     INLINE $A946;
  553.     {$ENDC}
  554. FUNCTION GetMHandle(menuID: INTEGER): MenuHandle;
  555.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  556.     INLINE $A949;
  557.     {$ENDC}
  558. PROCEDURE DelMCEntries(menuID: INTEGER; menuItem: INTEGER);
  559.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  560.     INLINE $AA60;
  561.     {$ENDC}
  562. PROCEDURE DispMCInfo(menuCTbl: MCTableHandle);
  563.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  564.     INLINE $AA63;
  565.     {$ENDC}
  566. {$ENDC}  {OLDROUTINENAMES}
  567.  
  568.  
  569.  
  570.  
  571. {$ALIGN RESET}
  572. {$POP}
  573.  
  574. {$SETC UsingIncludes := MenusIncludes}
  575.  
  576. {$ENDC} {__MENUS__}
  577.  
  578. {$IFC NOT UsingIncludes}
  579.  END.
  580. {$ENDC}
  581.